package com.Tjise.exceptiondemo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.nio.file.FileAlreadyExistsException;

public class TestDriver {
    public static void main(String[] args) {
        test1();
        System.out.println("==============");
        try {
            test2();
        } catch (Exception e) {
            e.printStackTrace();
            //这里会有针对发生非异常情况下的业务逻辑处理代码
        }
        System.out.println("=============");
        test3();
    }

    public static void test3() {
        //被处理的字符串
        String string = "srtg";
        System.out.println("被处理的字符串：" + string);
        //字符串中的字符的个数
        int count = 0;
        //遍历字符串中的每一个字符
        try {
            while (true) {
                string.charAt(++count);
            }
        } catch (Exception e) {
            //发生异常的时候，说明字符串数完了
            System.out.println("字符串的长度：" + count);
        }
    }


    /**
     * 手动抛出异常
     */
    public static void test2() throws Exception {
        int i = 0;
        int j = 5;
        if (i == 0) {
            //手动抛出异常，进行预警
            throw new Exception("除数不能为0");
        }
        //保证正常进行
        int k = j / i;
    }

    /**
     * 异常处理机制
     */
    public static void test1() {
        //调用子方法
        try {
            test1_sub();
        } catch (FileAlreadyExistsException | FileNotFoundException e) {
            e.printStackTrace();
        }
    }

    /**
     * 异常处理-throws方式
     */
    public static void test1_sub() throws FileAlreadyExistsException, FileNotFoundException {
        FileInputStream fileInputStream = new FileInputStream("");
    }
}
